package com.andy.common.exception;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.Payload;



@Documented
//校验注解是使用哪个校验器校验的，这里可以指定校验器，这里不指定需要在初始化指定
@Constraint(validatedBy = { ListValConstraintValidator.class })
//这个注解可以标注在哪些位置
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
//校验注解的时机
@Retention(RetentionPolicy.RUNTIME)
public @interface ListValue {

    //校验出错后，错误信息去哪取，默认这个属性，取ValidationMessages.properties取
    String message() default "{com.andy.common.exception.ListValue.message}";
    //也要支持分组校验的功能
    Class<?>[] groups() default { };
    //自定义负载信息
    Class<? extends Payload>[] payload() default { };

    int [] vals ={0,1};
}
